<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>3dchess: S:/dev/3dchess/src/gui/states/GamePlay.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">3dchess
   </div>
   <div id="projectbrief">Basic chess application with OpenGL graphics and AI</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_99d0482cf009f9d97a0877749b817f19.html">gui</a></li><li class="navelem"><a class="el" href="dir_01467e2d81f9a62fd048d1fbf82d478b.html">states</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">GamePlay.h</div>  </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment">    Copyright (c) 2013-2014, Patrick Hillert &lt;silent@gmx.biz&gt;</span></div>
<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment">    All rights reserved.</span></div>
<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment">    Redistribution and use in source and binary forms, with or without</span></div>
<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment">    modification, are permitted provided that the following conditions are met:</span></div>
<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment">    1. Redistributions of source code must retain the above copyright notice,</span></div>
<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment">    this list of conditions and the following disclaimer.</span></div>
<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment">    2. Redistributions in binary form must reproduce the above copyright</span></div>
<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment">    notice, this list of conditions and the following disclaimer in the</span></div>
<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment">    documentation and/or other materials provided with the distribution.</span></div>
<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment">    3. Neither the name of the copyright holder nor the names of its</span></div>
<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment">    contributors may be used to endorse or promote products derived from</span></div>
<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment">    this software without specific prior written permission.</span></div>
<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment">    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &quot;AS IS&quot;</span></div>
<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment">    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</span></div>
<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment">    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</span></div>
<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment">    ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE</span></div>
<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment">    LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR</span></div>
<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment">    CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF</span></div>
<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment">    SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS</span></div>
<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment">    INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN</span></div>
<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="comment">    CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)</span></div>
<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="comment">    ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE</span></div>
<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="comment">    POSSIBILITY OF SUCH DAMAGE.</span></div>
<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;</div>
<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#ifndef GAMEPLAY_H</span></div>
<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GAMEPLAY_H</span></div>
<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#include &quot;logic/GameLogic.h&quot;</span></div>
<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#include &quot;gui/GuiObserver.h&quot;</span></div>
<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#include &quot;gui/interface/AbstractState.h&quot;</span></div>
<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#include &quot;gui/Menu2D.h&quot;</span></div>
<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#include &quot;gui/ChessSet.h&quot;</span></div>
<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#include &quot;core/Logging.h&quot;</span></div>
<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">#include &quot;gui/ArrowNavigationHandler.h&quot;</span></div>
<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">#include &quot;gui/ResourceInitializer.h&quot;</span></div>
<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;</div>
<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div>
<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="preprocessor">#include &lt;array&gt;</span></div>
<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="preprocessor">#include &lt;deque&gt;</span></div>
<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="preprocessor">#include &lt;chrono&gt;</span></div>
<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div>
<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="keyword">class </span><a class="code" href="class_state_machine.html">StateMachine</a>;</div>
<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="keyword">class </span><a class="code" href="class_observer_dispatcher_proxy.html">ObserverDispatcherProxy</a>;</div>
<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="keyword">using</span> ObserverDispatcherProxyPtr = std::shared_ptr&lt;ObserverDispatcherProxy&gt;;</div>
<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;</div>
<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="keyword">class </span><a class="code" href="class_player_dispatcher_proxy.html">PlayerDispatcherProxy</a>;</div>
<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="keyword">using</span> PlayerDispatcherProxyPtr = std::shared_ptr&lt;PlayerDispatcherProxy&gt;;</div>
<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;</div>
<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="class_game_play.html">   63</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_game_play.html">GamePlay</a> : <span class="keyword">public</span> <a class="code" href="class_abstract_state.html">AbstractState</a> {</div>
<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="class_game_play.html#a9bbbd1c2193ee3046f1b0f25035fa616">   66</a></span>&#160;    <span class="keyword">enum</span> <a class="code" href="class_game_play.html#a9bbbd1c2193ee3046f1b0f25035fa616">GameMode</a> {</div>
<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;        AI_VS_AI,</div>
<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;        PLAYER_VS_AI</div>
<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    };</div>
<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;</div>
<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    <a class="code" href="class_game_play.html#aac535480eb47e416b1bb0cd6c566043b">GamePlay</a>(<a class="code" href="class_game_play.html#a9bbbd1c2193ee3046f1b0f25035fa616">GameMode</a> mode, PlayerColor humanPlayerColor, std::string initialFen = <span class="stringliteral">&quot;&quot;</span>);</div>
<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;</div>
<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_game_play.html#a265e1c47781f3ab890a648c9811738d7">enter</a>() <span class="keyword">override</span>;</div>
<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;</div>
<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    <a class="code" href="class_abstract_state.html">AbstractState</a>* <a class="code" href="class_game_play.html#aa488735535fde3fa3ac41ee94112141e">run</a>() <span class="keyword">override</span>;</div>
<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;</div>
<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_game_play.html#af635ce486e5bc9b3bdf21241f6737000">exit</a>() <span class="keyword">override</span>;</div>
<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;</div>
<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_game_play.html#a4cb5373f35672dd1112e41fd48e46e57">draw</a>();</div>
<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;</div>
<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_game_play.html#a7cfdf90a24b76b71d01d292337e080ee">startShowText</a>(std::string text);</div>
<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;</div>
<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_game_play.html#a0f24d5ef62fec459a516bd4106a67ee4">switchToPlayerColor</a>(PlayerColor color);</div>
<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;</div>
<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_game_play.html#a18222d37c08887971467a535226c6b72">setState</a>(std::array&lt;Piece, 64&gt; state, PlayerColor lastPlayer, <a class="code" href="class_turn.html">Turn</a> lastTurn);</div>
<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;</div>
<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_game_play.html#a18222d37c08887971467a535226c6b72">setState</a>(std::array&lt;Piece, 64&gt; state);</div>
<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;</div>
<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_game_play.html#ac9a17da80920462436ef112ff66a77d5">setGameState</a>(<span class="keyword">const</span> <a class="code" href="class_game_state.html">GameState</a>&amp; gameState);</div>
<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;</div>
<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_game_play.html#a485bd261cd18ef597db289f129ce7c70">onPlayerIsOnTurn</a>(PlayerColor who);</div>
<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;</div>
<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_game_play.html#a84f872fda46a5fc467744a1b4c404c47">onPlayerAbortTurn</a>();</div>
<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;</div>
<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;    std::future&lt;Turn&gt; <a class="code" href="class_game_play.html#acc1dfc5a3291fac745a7811d36a26ad5">doMakePlayerTurn</a>();</div>
<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;</div>
<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="class_game_play.html#aa05a2e43fc4d518712e38a3593efef57">  163</a></span>&#160;    <a class="code" href="class_state_machine.html">StateMachine</a>&amp; <a class="code" href="class_game_play.html#aa05a2e43fc4d518712e38a3593efef57">m_fsm</a>;</div>
<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;</div>
<div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="class_game_play.html#aff3325cab4d126d6269e95627f0f391a">  166</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="class_game_play.html#aff3325cab4d126d6269e95627f0f391a">m_rotateFrom</a>, m_rotateTo;</div>
<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;</div>
<div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="class_game_play.html#a99fd5d355de5bbbc2a46fb40c7b40ed4">  169</a></span>&#160;    <a class="code" href="class_game_play.html#a9bbbd1c2193ee3046f1b0f25035fa616">GameMode</a> <a class="code" href="class_game_play.html#a99fd5d355de5bbbc2a46fb40c7b40ed4">m_gameMode</a>;</div>
<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;</div>
<div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="class_game_play.html#ab38ac3510b9435896795a2b291bf9949">  172</a></span>&#160;    PlayerColor <a class="code" href="class_game_play.html#ab38ac3510b9435896795a2b291bf9949">m_humanPlayerColor</a>;</div>
<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;</div>
<div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="class_game_play.html#a667d7e1a2bd4484382871052a76ef7e0">  175</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_game_play.html#a667d7e1a2bd4484382871052a76ef7e0">m_lockCamera</a>;</div>
<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;</div>
<div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="class_game_play.html#a98fcc876a9da4c8896670ef67600cf4e">  178</a></span>&#160;    ArrowNavigationHandlerPtr <a class="code" href="class_game_play.html#a98fcc876a9da4c8896670ef67600cf4e">m_arrowNavHandler</a>;</div>
<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;</div>
<div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="class_game_play.html#a054f174f982b9aa8e7bbe31ee3a185aa">  181</a></span>&#160;    ResourceInitializerPtr <a class="code" href="class_game_play.html#a054f174f982b9aa8e7bbe31ee3a185aa">m_resourceInitializer</a>;</div>
<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;</div>
<div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="class_game_play.html#ac9933faee75d6e5f0e630d593cb4fa0f">  184</a></span>&#160;    std::vector&lt;Turn&gt; <a class="code" href="class_game_play.html#ac9933faee75d6e5f0e630d593cb4fa0f">m_possibleTurns</a>;</div>
<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;</div>
<div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="class_game_play.html#af5e415fc449d45c005861160bfacbe9e">  187</a></span>&#160;    std::promise&lt;Turn&gt; <a class="code" href="class_game_play.html#af5e415fc449d45c005861160bfacbe9e">m_promisedPlayerTurn</a>;</div>
<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;</div>
<div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="struct_game_play_1_1_keyboard_counter.html">  191</a></span>&#160;    <span class="keyword">struct </span><a class="code" href="struct_game_play_1_1_keyboard_counter.html">KeyboardCounter</a> {</div>
<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;        std::chrono::time_point&lt;std::chrono::system_clock&gt; keyR;</div>
<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;        std::chrono::time_point&lt;std::chrono::system_clock&gt; keyReturn;</div>
<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;    } m_kCounter;</div>
<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;</div>
<div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="class_game_play.html#a8295f5fee002bad263bdecd70e1ba2ed">  197</a></span>&#160;    std::array&lt;Piece, 64&gt; <a class="code" href="class_game_play.html#a8295f5fee002bad263bdecd70e1ba2ed">m_chessBoardState</a>;</div>
<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;</div>
<div class="line"><a name="l00200"></a><span class="lineno"><a class="line" href="class_game_play.html#a177914ef7eda1e6686566490264f3ce7">  200</a></span>&#160;    <a class="code" href="class_game_state.html">GameState</a> <a class="code" href="class_game_play.html#a177914ef7eda1e6686566490264f3ce7">m_gameState</a>;</div>
<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;</div>
<div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="struct_game_play_1_1_captured_pieces.html">  204</a></span>&#160;    <span class="keyword">struct </span><a class="code" href="struct_game_play_1_1_captured_pieces.html">CapturedPieces</a> {</div>
<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;        std::array&lt;int, 6&gt; countBlack;</div>
<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;        std::array&lt;int, 6&gt; countWhite;</div>
<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;</div>
<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;        GLuint blackBar;</div>
<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;        GLuint whiteBar;</div>
<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;    } m_capturedPieces;</div>
<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;</div>
<div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="class_game_play.html#a5980fe6836e5b78acc8bbbec79d659c6">  213</a></span>&#160;    <span class="keyword">enum</span> <a class="code" href="class_game_play.html#a5980fe6836e5b78acc8bbbec79d659c6">States</a> {</div>
<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;        KEEP_CURRENT,</div>
<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;</div>
<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;        BACK_TO_MENU</div>
<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;    } m_nextState;</div>
<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;</div>
<div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="class_game_play.html#a74b1558e794d5ae8e60381c33111f05f">  220</a></span>&#160;        <span class="keyword">enum</span> <a class="code" href="class_game_play.html#a74b1558e794d5ae8e60381c33111f05f">InternalState</a> {</div>
<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;            AI_ON_TURN,</div>
<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;            PLAYER_ON_TURN,</div>
<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;            PAUSE,</div>
<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;            SAVE_GAME</div>
<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;        } m_internalState, m_lastInternalState;</div>
<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;</div>
<div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="class_game_play.html#a66aa55b2891b88080aef650bd0a42bdb">  228</a></span>&#160;            <span class="keyword">enum</span> <a class="code" href="class_game_play.html#a66aa55b2891b88080aef650bd0a42bdb">PlayerState</a> {</div>
<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;                NONE,</div>
<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;                CHOOSE_PROMOTION_TURN</div>
<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;            } m_playerState;</div>
<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;    </div>
<div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="class_game_play.html#a5b0bd4112415c3caf5abc3b97a6d2b7c">  234</a></span>&#160;    <a class="code" href="class_turn.html">Turn</a> <a class="code" href="class_game_play.html#a5b0bd4112415c3caf5abc3b97a6d2b7c">m_promotionTurns</a>[4];</div>
<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;</div>
<div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="struct_game_play_1_1_player_turn.html">  237</a></span>&#160;    <span class="keyword">struct </span><a class="code" href="struct_game_play_1_1_player_turn.html">PlayerTurn</a> {</div>
<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;        PlayerColor who;</div>
<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;        <a class="code" href="class_turn.html">Turn</a> turn;</div>
<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;    };</div>
<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;</div>
<div class="line"><a name="l00243"></a><span class="lineno"><a class="line" href="class_game_play.html#ab19bdf0846e18226d8c538262aa8ca25">  243</a></span>&#160;    std::deque&lt;PlayerTurn&gt; <a class="code" href="class_game_play.html#ab19bdf0846e18226d8c538262aa8ca25">m_playerTurns</a>;</div>
<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;</div>
<div class="line"><a name="l00246"></a><span class="lineno"><a class="line" href="class_game_play.html#afe1496c140111c6a6680754fc0a2d277">  246</a></span>&#160;    PlayerColor <a class="code" href="class_game_play.html#afe1496c140111c6a6680754fc0a2d277">m_lastPlayer</a>;</div>
<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;</div>
<div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="class_game_play.html#a0d85827a32cecdbefd05d8e959dfbe0f">  249</a></span>&#160;    <a class="code" href="class_turn.html">Turn</a> <a class="code" href="class_game_play.html#a0d85827a32cecdbefd05d8e959dfbe0f">m_lastTurn</a>;</div>
<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;</div>
<div class="line"><a name="l00252"></a><span class="lineno"><a class="line" href="class_game_play.html#aa352e55db65724b3a72ecb1c5014aaf0">  252</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_game_play.html#aa352e55db65724b3a72ecb1c5014aaf0">m_firstTurn</a>;</div>
<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;</div>
<div class="line"><a name="l00255"></a><span class="lineno"><a class="line" href="class_game_play.html#ae927606f6049f0860b365c65864e0cbd">  255</a></span>&#160;    AnimationHelperPtr <a class="code" href="class_game_play.html#ae927606f6049f0860b365c65864e0cbd">m_animationHelperCamera</a>, m_animationHelperBackground;</div>
<div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;</div>
<div class="line"><a name="l00258"></a><span class="lineno"><a class="line" href="class_game_play.html#a68c1f30fdb59c42170cbdcc19b5a8d6d">  258</a></span>&#160;    ChessSetPtr <a class="code" href="class_game_play.html#a68c1f30fdb59c42170cbdcc19b5a8d6d">m_chessSet</a>;</div>
<div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;</div>
<div class="line"><a name="l00261"></a><span class="lineno"><a class="line" href="class_game_play.html#aff0f0db570f8b729553b2e5af5252232">  261</a></span>&#160;    Menu2DPtr <a class="code" href="class_game_play.html#aff0f0db570f8b729553b2e5af5252232">m_pauseMenuMain</a>, m_pauseMenuSave;</div>
<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;</div>
<div class="line"><a name="l00265"></a><span class="lineno"><a class="line" href="struct_game_play_1_1_message_box.html">  265</a></span>&#160;    <span class="keyword">struct </span><a class="code" href="struct_game_play_1_1_message_box.html">MessageBox</a> {</div>
<div class="line"><a name="l00267"></a><span class="lineno"><a class="line" href="struct_game_play_1_1_message_box.html#aff27b1354ab7cce86518739f39dca891">  267</a></span>&#160;        <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="struct_game_play_1_1_message_box.html#aff27b1354ab7cce86518739f39dca891">width</a>;</div>
<div class="line"><a name="l00269"></a><span class="lineno"><a class="line" href="struct_game_play_1_1_message_box.html#adc292bdca3ba100b4dba7c7e166758e5">  269</a></span>&#160;        <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="struct_game_play_1_1_message_box.html#adc292bdca3ba100b4dba7c7e166758e5">height</a>;</div>
<div class="line"><a name="l00271"></a><span class="lineno"><a class="line" href="struct_game_play_1_1_message_box.html#ae9713f46264ffb44f3e37de3afced786">  271</a></span>&#160;        <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="struct_game_play_1_1_message_box.html#ae9713f46264ffb44f3e37de3afced786">padding</a>;</div>
<div class="line"><a name="l00273"></a><span class="lineno"><a class="line" href="struct_game_play_1_1_message_box.html#aacbedfddc00beee62ebc27f91c8accf5">  273</a></span>&#160;        <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="struct_game_play_1_1_message_box.html#aacbedfddc00beee62ebc27f91c8accf5">showDuration</a>;</div>
<div class="line"><a name="l00275"></a><span class="lineno"><a class="line" href="struct_game_play_1_1_message_box.html#a94cdd99d0da04e1c4a7ec1ccc50d92cd">  275</a></span>&#160;        std::string <a class="code" href="struct_game_play_1_1_message_box.html#a94cdd99d0da04e1c4a7ec1ccc50d92cd">text</a>;</div>
<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;</div>
<div class="line"><a name="l00278"></a><span class="lineno"><a class="line" href="struct_game_play_1_1_message_box.html#abcbac659ddffa04ddb8fc4dcb7e0ed28">  278</a></span>&#160;        <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="struct_game_play_1_1_message_box.html#abcbac659ddffa04ddb8fc4dcb7e0ed28">shownSince</a>;</div>
<div class="line"><a name="l00280"></a><span class="lineno"><a class="line" href="struct_game_play_1_1_message_box.html#ace6667698961a1167dfca5a9e736cf76">  280</a></span>&#160;        <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="struct_game_play_1_1_message_box.html#ace6667698961a1167dfca5a9e736cf76">windowPosX</a>;</div>
<div class="line"><a name="l00282"></a><span class="lineno"><a class="line" href="struct_game_play_1_1_message_box.html#a0f6133d1beed00ec23cd2ff4620b172d">  282</a></span>&#160;        <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="struct_game_play_1_1_message_box.html#a0f6133d1beed00ec23cd2ff4620b172d">windowPosY</a>;</div>
<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;</div>
<div class="line"><a name="l00285"></a><span class="lineno"><a class="line" href="struct_game_play_1_1_message_box.html#a690017c5e260f71076c073b9e71ba792">  285</a></span>&#160;        GLuint <a class="code" href="struct_game_play_1_1_message_box.html#a690017c5e260f71076c073b9e71ba792">displayList</a>;</div>
<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;    } m_messageBox;</div>
<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;</div>
<div class="line"><a name="l00289"></a><span class="lineno"><a class="line" href="class_game_play.html#a07152dc4efcaee05b21f2e69eac4bd3a">  289</a></span>&#160;    GLfloat <a class="code" href="class_game_play.html#a07152dc4efcaee05b21f2e69eac4bd3a">m_lightPos0</a>[3];</div>
<div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;</div>
<div class="line"><a name="l00292"></a><span class="lineno"><a class="line" href="class_game_play.html#af1140d562fd98d7448e52177cfbcc837">  292</a></span>&#160;    GLfloat <a class="code" href="class_game_play.html#af1140d562fd98d7448e52177cfbcc837">m_lightPos1</a>[3];</div>
<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;</div>
<div class="line"><a name="l00295"></a><span class="lineno"><a class="line" href="class_game_play.html#abee5ef6ad1e89a8d495513dad299f133">  295</a></span>&#160;    AbstractPlayerPtr <a class="code" href="class_game_play.html#abee5ef6ad1e89a8d495513dad299f133">m_firstPlayer</a>, m_secondPlayer;</div>
<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;</div>
<div class="line"><a name="l00298"></a><span class="lineno"><a class="line" href="class_game_play.html#a4119f96d8b222d16d232082ab2884f1f">  298</a></span>&#160;    AbstractGameLogicPtr <a class="code" href="class_game_play.html#a4119f96d8b222d16d232082ab2884f1f">m_gameLogic</a>;</div>
<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;</div>
<div class="line"><a name="l00301"></a><span class="lineno"><a class="line" href="class_game_play.html#a6fcf631d2f2c73225c4b225cfc80af98">  301</a></span>&#160;    GuiObserverPtr <a class="code" href="class_game_play.html#a6fcf631d2f2c73225c4b225cfc80af98">m_observer</a>;</div>
<div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;</div>
<div class="line"><a name="l00304"></a><span class="lineno"><a class="line" href="class_game_play.html#a90f8264657c06e37852a5aac537a57b9">  304</a></span>&#160;    ObserverDispatcherProxyPtr <a class="code" href="class_game_play.html#a90f8264657c06e37852a5aac537a57b9">m_observerProxy</a>;</div>
<div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;</div>
<div class="line"><a name="l00307"></a><span class="lineno"><a class="line" href="class_game_play.html#a3d2fc85d50bceae7970cca44f047ba21">  307</a></span>&#160;    PlayerDispatcherProxyPtr <a class="code" href="class_game_play.html#a3d2fc85d50bceae7970cca44f047ba21">m_playerProxy</a>;</div>
<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;</div>
<div class="line"><a name="l00310"></a><span class="lineno"><a class="line" href="class_game_play.html#a477c98347361e879824a47a100302271">  310</a></span>&#160;    std::string <a class="code" href="class_game_play.html#a477c98347361e879824a47a100302271">m_initialFen</a>;</div>
<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;</div>
<div class="line"><a name="l00313"></a><span class="lineno"><a class="line" href="class_game_play.html#a9e8c3ecd9ec4d13fdd9ffd4a73bbab9f">  313</a></span>&#160;    Logging::Logger <a class="code" href="class_game_play.html#a9e8c3ecd9ec4d13fdd9ffd4a73bbab9f">m_log</a>;</div>
<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;    </div>
<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;    <span class="keywordtype">string</span> <a class="code" href="class_game_play.html#ae5056701f898482fc4dc076f683f5920">getPieceName</a>(<span class="keywordtype">int</span> pieceNumber);</div>
<div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;</div>
<div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_game_play.html#ac0d63c746a0fa07b9c29aaa9795e4a21">initLighting</a>();</div>
<div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;</div>
<div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_game_play.html#a9e52fde6bab37c0d3dbb6394d7219c82">initChessSet</a>();</div>
<div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;</div>
<div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_game_play.html#afd53f5e1f41821e947ad68d6f008a379">initAnimationHelpers</a>();</div>
<div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;</div>
<div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_game_play.html#a17cf0810ad681633a3ff67def789bc85">initMenuPause</a>();</div>
<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;</div>
<div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_game_play.html#a53238b9aad252b32ed4bece1992432d3">initMenuSaveGame</a>();</div>
<div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;</div>
<div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_game_play.html#ac76b49dd34751135cd885367c5defe4f">initPlayers</a>();</div>
<div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;</div>
<div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_game_play.html#a8e7a86f69d354aec784c8b79a7bcc5c2">initGameLogic</a>();</div>
<div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;</div>
<div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_game_play.html#ae7d4ceb1d99b0d5cd8e81edf4623822f">initMessageBox</a>();</div>
<div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;</div>
<div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_game_play.html#a541015f965135235c8b17e704908eef0">initCamera</a>();</div>
<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;</div>
<div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_game_play.html#a2984d942ffee50a5c1911a0bce9294d9">initCapturedPieces</a>();</div>
<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;</div>
<div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_game_play.html#a21dced2f42338f59198c44a84e3f151a">initPieceCounters</a>(<a class="code" href="class_game_state.html">GameState</a>&amp; initialGameState);</div>
<div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;</div>
<div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_game_play.html#a55a05169e47f5e9a7114b702842f151d">fadeBackgroundForOneTime</a>();</div>
<div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;</div>
<div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_game_play.html#a68f3666e621c5014adb31332d2dd04dd">resetCapturedPieces</a>();</div>
<div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;</div>
<div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_game_play.html#ad64b4b67f4c32063bc7278ba5b392545">rotateCamera</a>();</div>
<div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;</div>
<div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_game_play.html#a92f38333245c2e802ab081718b84ab96">setCameraPosition</a>(<span class="keywordtype">float</span> degree);</div>
<div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;</div>
<div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_game_play.html#aca425c767b227b7c8a30c08131c8535c">draw2D</a>();</div>
<div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;</div>
<div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_game_play.html#a4349f2b164b3e34050b0db62b17d8bbe">draw3D</a>();</div>
<div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;</div>
<div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_game_play.html#a48208598d9b96e4ae2c0edc4297e339f">drawMessageBox</a>();</div>
<div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;</div>
<div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_game_play.html#a7c7414aff1c119e7e1faeb8d5e30ada6">drawLastTurns</a>();</div>
<div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;</div>
<div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_game_play.html#a31b412528f8da62316bea55169626d3c">drawInfoBox</a>(<span class="keywordtype">string</span> msg);</div>
<div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;    </div>
<div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_game_play.html#ad4ae2ed87e9393f31ff75b4525471fa3">drawCapturedPieces</a>();</div>
<div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;</div>
<div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_game_play.html#ab1d524742db2bd3a105eae31548e8393">drawPauseMenu</a>();</div>
<div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;</div>
<div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_game_play.html#a348051912d73e2501e02478913c723c3">drawPlayerActions</a>();</div>
<div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;</div>
<div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_game_play.html#acf9363543bc52ac3866f4520d695b23a">enableLighting</a>();</div>
<div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;</div>
<div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_game_play.html#a300e9e0ee4ca6f55ffd54791b34d4d0b">disableLighting</a>();</div>
<div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;</div>
<div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_game_play.html#ab171e913ca5dc7e981521e4abcd4cb4a">handleEvents</a>();</div>
<div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;</div>
<div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_game_play.html#ad442c60d1d886aaa310b129b7fd75224">startCameraRotation</a>();</div>
<div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;</div>
<div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_game_play.html#af78aaad25de23258dd479cb18c10ab6a">onPauseGame</a>();</div>
<div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;</div>
<div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_game_play.html#a063a413a5c7a2c75e2078179734e82be">onResumeGame</a>();</div>
<div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;</div>
<div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_game_play.html#a21066f597c360f52bba7f5eef852100a">onSaveGame</a>();</div>
<div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;</div>
<div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_game_play.html#a68c51e693ae04b3b4c41fe5beca7a336">onSaveSlot1</a>();</div>
<div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;</div>
<div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_game_play.html#a42685277312fe9a727d9c6f603eec081">onSaveSlot2</a>();</div>
<div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;</div>
<div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_game_play.html#ab9cb6b539cc813c1ea254ad1d56c4591">onSaveSlot3</a>();</div>
<div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;</div>
<div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_game_play.html#ac5138042af245e5410e854e7beaa780a">saveGameToSlot</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> slot);</div>
<div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;</div>
<div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_game_play.html#abe6e84acbf534cf6d3a5152132e143bb">onMenuSaveBack</a>();</div>
<div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;</div>
<div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_game_play.html#acfd5bcec7ecfe767f3e42617088fd0ad">onLeaveGame</a>();</div>
<div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;};</div>
<div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;</div>
<div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160;<span class="keyword">using</span> GamePlayPtr = std::shared_ptr&lt;GamePlay&gt;;</div>
<div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160;</div>
<div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;<span class="preprocessor">#endif // GAMEPLAY_H</span></div>
<div class="ttc" id="struct_game_play_1_1_player_turn_html"><div class="ttname"><a href="struct_game_play_1_1_player_turn.html">GamePlay::PlayerTurn</a></div><div class="ttdoc">Struct which represents a players turn. </div><div class="ttdef"><b>Definition:</b> GamePlay.h:237</div></div>
<div class="ttc" id="struct_game_play_1_1_message_box_html_ae9713f46264ffb44f3e37de3afced786"><div class="ttname"><a href="struct_game_play_1_1_message_box.html#ae9713f46264ffb44f3e37de3afced786">GamePlay::MessageBox::padding</a></div><div class="ttdeci">unsigned int padding</div><div class="ttdoc">inner padding to the edges </div><div class="ttdef"><b>Definition:</b> GamePlay.h:271</div></div>
<div class="ttc" id="class_game_play_html_ad64b4b67f4c32063bc7278ba5b392545"><div class="ttname"><a href="class_game_play.html#ad64b4b67f4c32063bc7278ba5b392545">GamePlay::rotateCamera</a></div><div class="ttdeci">void rotateCamera()</div><div class="ttdoc">Rotates the camera with an animation helper if necessary and only if the animation time is not over...</div><div class="ttdef"><b>Definition:</b> GamePlay.cpp:841</div></div>
<div class="ttc" id="struct_game_play_1_1_message_box_html_ace6667698961a1167dfca5a9e736cf76"><div class="ttname"><a href="struct_game_play_1_1_message_box.html#ace6667698961a1167dfca5a9e736cf76">GamePlay::MessageBox::windowPosX</a></div><div class="ttdeci">unsigned int windowPosX</div><div class="ttdoc">viewport x coordinate </div><div class="ttdef"><b>Definition:</b> GamePlay.h:280</div></div>
<div class="ttc" id="class_game_play_html_a53238b9aad252b32ed4bece1992432d3"><div class="ttname"><a href="class_game_play.html#a53238b9aad252b32ed4bece1992432d3">GamePlay::initMenuSaveGame</a></div><div class="ttdeci">void initMenuSaveGame()</div><div class="ttdoc">Initializes the save pause menu with all the buttons. </div></div>
<div class="ttc" id="class_state_machine_html"><div class="ttname"><a href="class_state_machine.html">StateMachine</a></div><div class="ttdoc">Class which manages the states. </div><div class="ttdef"><b>Definition:</b> StateMachine.h:51</div></div>
<div class="ttc" id="class_game_play_html_a063a413a5c7a2c75e2078179734e82be"><div class="ttname"><a href="class_game_play.html#a063a413a5c7a2c75e2078179734e82be">GamePlay::onResumeGame</a></div><div class="ttdeci">void onResumeGame()</div><div class="ttdoc">If the internal game state was PAUSE and is now AI_ON_TURN or PLAYER_ON_TURN. </div><div class="ttdef"><b>Definition:</b> GamePlay.cpp:273</div></div>
<div class="ttc" id="class_game_play_html_a485bd261cd18ef597db289f129ce7c70"><div class="ttname"><a href="class_game_play.html#a485bd261cd18ef597db289f129ce7c70">GamePlay::onPlayerIsOnTurn</a></div><div class="ttdeci">void onPlayerIsOnTurn(PlayerColor who)</div><div class="ttdoc">This method changed the internal state to interact with a human player if the game mode is PLAYER_VS_...</div><div class="ttdef"><b>Definition:</b> GamePlay.cpp:321</div></div>
<div class="ttc" id="class_game_play_html_ac76b49dd34751135cd885367c5defe4f"><div class="ttname"><a href="class_game_play.html#ac76b49dd34751135cd885367c5defe4f">GamePlay::initPlayers</a></div><div class="ttdeci">void initPlayers()</div><div class="ttdoc">Initializes the players depending on the game mode. </div><div class="ttdef"><b>Definition:</b> GamePlay.cpp:142</div></div>
<div class="ttc" id="class_game_play_html_a68c1f30fdb59c42170cbdcc19b5a8d6d"><div class="ttname"><a href="class_game_play.html#a68c1f30fdb59c42170cbdcc19b5a8d6d">GamePlay::m_chessSet</a></div><div class="ttdeci">ChessSetPtr m_chessSet</div><div class="ttdoc">Smart pointer to the chess set. </div><div class="ttdef"><b>Definition:</b> GamePlay.h:258</div></div>
<div class="ttc" id="class_game_play_html_a92f38333245c2e802ab081718b84ab96"><div class="ttname"><a href="class_game_play.html#a92f38333245c2e802ab081718b84ab96">GamePlay::setCameraPosition</a></div><div class="ttdeci">void setCameraPosition(float degree)</div><div class="ttdoc">Calculates the new camera coordinates from a given degree between 0-360 deg and positions the camera ...</div><div class="ttdef"><b>Definition:</b> GamePlay.cpp:852</div></div>
<div class="ttc" id="struct_game_play_1_1_message_box_html_a0f6133d1beed00ec23cd2ff4620b172d"><div class="ttname"><a href="struct_game_play_1_1_message_box.html#a0f6133d1beed00ec23cd2ff4620b172d">GamePlay::MessageBox::windowPosY</a></div><div class="ttdeci">unsigned int windowPosY</div><div class="ttdoc">viewport y coordinate </div><div class="ttdef"><b>Definition:</b> GamePlay.h:282</div></div>
<div class="ttc" id="class_game_play_html_ac9933faee75d6e5f0e630d593cb4fa0f"><div class="ttname"><a href="class_game_play.html#ac9933faee75d6e5f0e630d593cb4fa0f">GamePlay::m_possibleTurns</a></div><div class="ttdeci">std::vector&lt; Turn &gt; m_possibleTurns</div><div class="ttdoc">All possible turns to take for a selected figure/model. </div><div class="ttdef"><b>Definition:</b> GamePlay.h:184</div></div>
<div class="ttc" id="class_game_play_html_a4349f2b164b3e34050b0db62b17d8bbe"><div class="ttname"><a href="class_game_play.html#a4349f2b164b3e34050b0db62b17d8bbe">GamePlay::draw3D</a></div><div class="ttdeci">void draw3D()</div><div class="ttdoc">Does all the 3D drawing action like chess board, models and so on. </div><div class="ttdef"><b>Definition:</b> GamePlay.cpp:447</div></div>
<div class="ttc" id="class_game_play_html_ac9a17da80920462436ef112ff66a77d5"><div class="ttname"><a href="class_game_play.html#ac9a17da80920462436ef112ff66a77d5">GamePlay::setGameState</a></div><div class="ttdeci">void setGameState(const GameState &amp;gameState)</div><div class="ttdoc">Sets the game state to the given one. </div><div class="ttdef"><b>Definition:</b> GamePlay.cpp:638</div></div>
<div class="ttc" id="class_game_play_html_a84f872fda46a5fc467744a1b4c404c47"><div class="ttname"><a href="class_game_play.html#a84f872fda46a5fc467744a1b4c404c47">GamePlay::onPlayerAbortTurn</a></div><div class="ttdeci">void onPlayerAbortTurn()</div><div class="ttdoc">If the human player aborts his current turn, this method switches to the AI player. </div><div class="ttdef"><b>Definition:</b> GamePlay.cpp:337</div></div>
<div class="ttc" id="class_game_state_html"><div class="ttname"><a href="class_game_state.html">GameState</a></div><div class="ttdoc">Facade class for the game logic, holds the chessboard and the turn generator. </div><div class="ttdef"><b>Definition:</b> GameState.h:44</div></div>
<div class="ttc" id="class_game_play_html_ac5138042af245e5410e854e7beaa780a"><div class="ttname"><a href="class_game_play.html#ac5138042af245e5410e854e7beaa780a">GamePlay::saveGameToSlot</a></div><div class="ttdeci">void saveGameToSlot(unsigned int slot)</div><div class="ttdoc">Saves the game at a given slot. </div><div class="ttdef"><b>Definition:</b> GamePlay.cpp:283</div></div>
<div class="ttc" id="class_game_play_html_a17cf0810ad681633a3ff67def789bc85"><div class="ttname"><a href="class_game_play.html#a17cf0810ad681633a3ff67def789bc85">GamePlay::initMenuPause</a></div><div class="ttdeci">void initMenuPause()</div><div class="ttdoc">Initializes the main pause menu with all the buttons. </div><div class="ttdef"><b>Definition:</b> GamePlay.cpp:125</div></div>
<div class="ttc" id="class_game_play_html_a42685277312fe9a727d9c6f603eec081"><div class="ttname"><a href="class_game_play.html#a42685277312fe9a727d9c6f603eec081">GamePlay::onSaveSlot2</a></div><div class="ttdeci">void onSaveSlot2()</div><div class="ttdoc">This must be called when saving the current game to game slot 2. </div><div class="ttdef"><b>Definition:</b> GamePlay.cpp:302</div></div>
<div class="ttc" id="class_game_play_html_a9e8c3ecd9ec4d13fdd9ffd4a73bbab9f"><div class="ttname"><a href="class_game_play.html#a9e8c3ecd9ec4d13fdd9ffd4a73bbab9f">GamePlay::m_log</a></div><div class="ttdeci">Logging::Logger m_log</div><div class="ttdoc">boost::log Logger for universal info, debug and error logging. </div><div class="ttdef"><b>Definition:</b> GamePlay.h:313</div></div>
<div class="ttc" id="class_game_play_html_a5980fe6836e5b78acc8bbbec79d659c6"><div class="ttname"><a href="class_game_play.html#a5980fe6836e5b78acc8bbbec79d659c6">GamePlay::States</a></div><div class="ttdeci">States</div><div class="ttdoc">The main states for the StateMachine. </div><div class="ttdef"><b>Definition:</b> GamePlay.h:213</div></div>
<div class="ttc" id="class_abstract_state_html"><div class="ttname"><a href="class_abstract_state.html">AbstractState</a></div><div class="ttdoc">Interface for modelling a game state. </div><div class="ttdef"><b>Definition:</b> AbstractState.h:40</div></div>
<div class="ttc" id="class_game_play_html_af1140d562fd98d7448e52177cfbcc837"><div class="ttname"><a href="class_game_play.html#af1140d562fd98d7448e52177cfbcc837">GamePlay::m_lightPos1</a></div><div class="ttdeci">GLfloat m_lightPos1[3]</div><div class="ttdoc">The second light position. </div><div class="ttdef"><b>Definition:</b> GamePlay.h:292</div></div>
<div class="ttc" id="class_game_play_html_acc1dfc5a3291fac745a7811d36a26ad5"><div class="ttname"><a href="class_game_play.html#acc1dfc5a3291fac745a7811d36a26ad5">GamePlay::doMakePlayerTurn</a></div><div class="ttdeci">std::future&lt; Turn &gt; doMakePlayerTurn()</div><div class="ttdoc">Tells the human to make a turn. </div><div class="ttdef"><b>Definition:</b> GamePlay.cpp:331</div></div>
<div class="ttc" id="class_game_play_html_af5e415fc449d45c005861160bfacbe9e"><div class="ttname"><a href="class_game_play.html#af5e415fc449d45c005861160bfacbe9e">GamePlay::m_promisedPlayerTurn</a></div><div class="ttdeci">std::promise&lt; Turn &gt; m_promisedPlayerTurn</div><div class="ttdoc">Holds the promise during fulfillment. </div><div class="ttdef"><b>Definition:</b> GamePlay.h:187</div></div>
<div class="ttc" id="class_game_play_html_acf9363543bc52ac3866f4520d695b23a"><div class="ttname"><a href="class_game_play.html#acf9363543bc52ac3866f4520d695b23a">GamePlay::enableLighting</a></div><div class="ttdeci">void enableLighting()</div><div class="ttdoc">Enables lighting. </div><div class="ttdef"><b>Definition:</b> GamePlay.cpp:424</div></div>
<div class="ttc" id="class_game_play_html_a66aa55b2891b88080aef650bd0a42bdb"><div class="ttname"><a href="class_game_play.html#a66aa55b2891b88080aef650bd0a42bdb">GamePlay::PlayerState</a></div><div class="ttdeci">PlayerState</div><div class="ttdoc">Internal player state (only available if the game mode is PLAYER_VS_AI). </div><div class="ttdef"><b>Definition:</b> GamePlay.h:228</div></div>
<div class="ttc" id="class_game_play_html_acfd5bcec7ecfe767f3e42617088fd0ad"><div class="ttname"><a href="class_game_play.html#acfd5bcec7ecfe767f3e42617088fd0ad">GamePlay::onLeaveGame</a></div><div class="ttdeci">void onLeaveGame()</div><div class="ttdoc">Calls the players to abort the current turn and leaves the game. </div><div class="ttdef"><b>Definition:</b> GamePlay.cpp:314</div></div>
<div class="ttc" id="class_game_play_html_abee5ef6ad1e89a8d495513dad299f133"><div class="ttname"><a href="class_game_play.html#abee5ef6ad1e89a8d495513dad299f133">GamePlay::m_firstPlayer</a></div><div class="ttdeci">AbstractPlayerPtr m_firstPlayer</div><div class="ttdoc">Smart pointer for the player. </div><div class="ttdef"><b>Definition:</b> GamePlay.h:295</div></div>
<div class="ttc" id="class_game_play_html_a74b1558e794d5ae8e60381c33111f05f"><div class="ttname"><a href="class_game_play.html#a74b1558e794d5ae8e60381c33111f05f">GamePlay::InternalState</a></div><div class="ttdeci">InternalState</div><div class="ttdoc">Internal state in the GamePlay class. </div><div class="ttdef"><b>Definition:</b> GamePlay.h:220</div></div>
<div class="ttc" id="class_game_play_html_a9e52fde6bab37c0d3dbb6394d7219c82"><div class="ttname"><a href="class_game_play.html#a9e52fde6bab37c0d3dbb6394d7219c82">GamePlay::initChessSet</a></div><div class="ttdeci">void initChessSet()</div><div class="ttdoc">Initializes the whole chess set (all models and chess board). </div><div class="ttdef"><b>Definition:</b> GamePlay.cpp:257</div></div>
<div class="ttc" id="class_game_play_html_a4119f96d8b222d16d232082ab2884f1f"><div class="ttname"><a href="class_game_play.html#a4119f96d8b222d16d232082ab2884f1f">GamePlay::m_gameLogic</a></div><div class="ttdeci">AbstractGameLogicPtr m_gameLogic</div><div class="ttdoc">Smart pointer for the game logic. </div><div class="ttdef"><b>Definition:</b> GamePlay.h:298</div></div>
<div class="ttc" id="class_game_play_html_a99fd5d355de5bbbc2a46fb40c7b40ed4"><div class="ttname"><a href="class_game_play.html#a99fd5d355de5bbbc2a46fb40c7b40ed4">GamePlay::m_gameMode</a></div><div class="ttdeci">GameMode m_gameMode</div><div class="ttdoc">The game mode, one of: PLAYER_VS_AI or AI_VS_AI. </div><div class="ttdef"><b>Definition:</b> GamePlay.h:169</div></div>
<div class="ttc" id="class_game_play_html_aff3325cab4d126d6269e95627f0f391a"><div class="ttname"><a href="class_game_play.html#aff3325cab4d126d6269e95627f0f391a">GamePlay::m_rotateFrom</a></div><div class="ttdeci">int m_rotateFrom</div><div class="ttdoc">Number in degree (0-360 deg) to rotate from/to. </div><div class="ttdef"><b>Definition:</b> GamePlay.h:166</div></div>
<div class="ttc" id="class_game_play_html_ab171e913ca5dc7e981521e4abcd4cb4a"><div class="ttname"><a href="class_game_play.html#ab171e913ca5dc7e981521e4abcd4cb4a">GamePlay::handleEvents</a></div><div class="ttdeci">void handleEvents()</div><div class="ttdoc">Handles all the human player keyboard and mouse events. </div><div class="ttdef"><b>Definition:</b> GamePlay.cpp:494</div></div>
<div class="ttc" id="class_game_play_html_ad4ae2ed87e9393f31ff75b4525471fa3"><div class="ttname"><a href="class_game_play.html#ad4ae2ed87e9393f31ff75b4525471fa3">GamePlay::drawCapturedPieces</a></div><div class="ttdeci">void drawCapturedPieces()</div><div class="ttdoc">Draws all the captured pieces statistic for the black and white player on the left top and right top ...</div><div class="ttdef"><b>Definition:</b> GamePlay.cpp:696</div></div>
<div class="ttc" id="class_game_play_html_a054f174f982b9aa8e7bbe31ee3a185aa"><div class="ttname"><a href="class_game_play.html#a054f174f982b9aa8e7bbe31ee3a185aa">GamePlay::m_resourceInitializer</a></div><div class="ttdeci">ResourceInitializerPtr m_resourceInitializer</div><div class="ttdoc">Smart pointer to the resource initializer. </div><div class="ttdef"><b>Definition:</b> GamePlay.h:181</div></div>
<div class="ttc" id="class_game_play_html_af78aaad25de23258dd479cb18c10ab6a"><div class="ttname"><a href="class_game_play.html#af78aaad25de23258dd479cb18c10ab6a">GamePlay::onPauseGame</a></div><div class="ttdeci">void onPauseGame()</div><div class="ttdoc">If the internal game state changed to PAUSE, this method is called. </div><div class="ttdef"><b>Definition:</b> GamePlay.cpp:268</div></div>
<div class="ttc" id="class_game_play_html_a541015f965135235c8b17e704908eef0"><div class="ttname"><a href="class_game_play.html#a541015f965135235c8b17e704908eef0">GamePlay::initCamera</a></div><div class="ttdeci">void initCamera()</div><div class="ttdoc">Initializes the camera rotation and initial position. </div><div class="ttdef"><b>Definition:</b> GamePlay.cpp:231</div></div>
<div class="ttc" id="class_game_play_html_ab19bdf0846e18226d8c538262aa8ca25"><div class="ttname"><a href="class_game_play.html#ab19bdf0846e18226d8c538262aa8ca25">GamePlay::m_playerTurns</a></div><div class="ttdeci">std::deque&lt; PlayerTurn &gt; m_playerTurns</div><div class="ttdoc">Holds all the human player made turns. </div><div class="ttdef"><b>Definition:</b> GamePlay.h:243</div></div>
<div class="ttc" id="class_turn_html"><div class="ttname"><a href="class_turn.html">Turn</a></div><div class="ttdoc">Represents a chess turn. </div><div class="ttdef"><b>Definition:</b> Turn.h:40</div></div>
<div class="ttc" id="struct_game_play_1_1_message_box_html_abcbac659ddffa04ddb8fc4dcb7e0ed28"><div class="ttname"><a href="struct_game_play_1_1_message_box.html#abcbac659ddffa04ddb8fc4dcb7e0ed28">GamePlay::MessageBox::shownSince</a></div><div class="ttdeci">unsigned int shownSince</div><div class="ttdoc">currently not used </div><div class="ttdef"><b>Definition:</b> GamePlay.h:278</div></div>
<div class="ttc" id="class_game_play_html_a07152dc4efcaee05b21f2e69eac4bd3a"><div class="ttname"><a href="class_game_play.html#a07152dc4efcaee05b21f2e69eac4bd3a">GamePlay::m_lightPos0</a></div><div class="ttdeci">GLfloat m_lightPos0[3]</div><div class="ttdoc">The first light position. </div><div class="ttdef"><b>Definition:</b> GamePlay.h:289</div></div>
<div class="ttc" id="class_game_play_html_ab38ac3510b9435896795a2b291bf9949"><div class="ttname"><a href="class_game_play.html#ab38ac3510b9435896795a2b291bf9949">GamePlay::m_humanPlayerColor</a></div><div class="ttdeci">PlayerColor m_humanPlayerColor</div><div class="ttdoc">The color of the human player. </div><div class="ttdef"><b>Definition:</b> GamePlay.h:172</div></div>
<div class="ttc" id="class_game_play_html_ac0d63c746a0fa07b9c29aaa9795e4a21"><div class="ttname"><a href="class_game_play.html#ac0d63c746a0fa07b9c29aaa9795e4a21">GamePlay::initLighting</a></div><div class="ttdeci">void initLighting()</div><div class="ttdoc">Initializes the OpenGL lightning for the scene. </div><div class="ttdef"><b>Definition:</b> GamePlay.cpp:370</div></div>
<div class="ttc" id="class_observer_dispatcher_proxy_html"><div class="ttname"><a href="class_observer_dispatcher_proxy.html">ObserverDispatcherProxy</a></div><div class="ttdoc">Proxy for transporting AbstractGameObserver events between threads. </div><div class="ttdef"><b>Definition:</b> ObserverDispatcherProxy.h:50</div></div>
<div class="ttc" id="class_game_play_html_ab1d524742db2bd3a105eae31548e8393"><div class="ttname"><a href="class_game_play.html#ab1d524742db2bd3a105eae31548e8393">GamePlay::drawPauseMenu</a></div><div class="ttdeci">void drawPauseMenu()</div><div class="ttdoc">Draws the pause menu. </div><div class="ttdef"><b>Definition:</b> GamePlay.cpp:803</div></div>
<div class="ttc" id="class_game_play_html_a5b0bd4112415c3caf5abc3b97a6d2b7c"><div class="ttname"><a href="class_game_play.html#a5b0bd4112415c3caf5abc3b97a6d2b7c">GamePlay::m_promotionTurns</a></div><div class="ttdeci">Turn m_promotionTurns[4]</div><div class="ttdoc">Holds the possible promotion turns for the human player. </div><div class="ttdef"><b>Definition:</b> GamePlay.h:234</div></div>
<div class="ttc" id="class_game_play_html_ad442c60d1d886aaa310b129b7fd75224"><div class="ttname"><a href="class_game_play.html#ad442c60d1d886aaa310b129b7fd75224">GamePlay::startCameraRotation</a></div><div class="ttdeci">void startCameraRotation()</div><div class="ttdoc">Starts the camera rotation and updates the start and end position of the camera. </div><div class="ttdef"><b>Definition:</b> GamePlay.cpp:864</div></div>
<div class="ttc" id="class_game_play_html_a48208598d9b96e4ae2c0edc4297e339f"><div class="ttname"><a href="class_game_play.html#a48208598d9b96e4ae2c0edc4297e339f">GamePlay::drawMessageBox</a></div><div class="ttdeci">void drawMessageBox()</div><div class="ttdoc">Draws the message box at the initialized position and the set text. </div><div class="ttdef"><b>Definition:</b> GamePlay.cpp:612</div></div>
<div class="ttc" id="class_game_play_html_a2984d942ffee50a5c1911a0bce9294d9"><div class="ttname"><a href="class_game_play.html#a2984d942ffee50a5c1911a0bce9294d9">GamePlay::initCapturedPieces</a></div><div class="ttdeci">void initCapturedPieces()</div><div class="ttdoc">Initializes the widget for the captures pieces to show on the HUD for the human player. </div><div class="ttdef"><b>Definition:</b> GamePlay.cpp:101</div></div>
<div class="ttc" id="class_game_play_html_aac535480eb47e416b1bb0cd6c566043b"><div class="ttname"><a href="class_game_play.html#aac535480eb47e416b1bb0cd6c566043b">GamePlay::GamePlay</a></div><div class="ttdeci">GamePlay(GameMode mode, PlayerColor humanPlayerColor, std::string initialFen=&quot;&quot;)</div><div class="ttdoc">Creates a new game. </div><div class="ttdef"><b>Definition:</b> GamePlay.cpp:60</div></div>
<div class="ttc" id="class_game_play_html_a348051912d73e2501e02478913c723c3"><div class="ttname"><a href="class_game_play.html#a348051912d73e2501e02478913c723c3">GamePlay::drawPlayerActions</a></div><div class="ttdeci">void drawPlayerActions()</div><div class="ttdoc">Draws the human-interaction things like colorized tiles when a model is selected or the cursor-highli...</div><div class="ttdef"><b>Definition:</b> GamePlay.cpp:764</div></div>
<div class="ttc" id="class_game_play_html_aff0f0db570f8b729553b2e5af5252232"><div class="ttname"><a href="class_game_play.html#aff0f0db570f8b729553b2e5af5252232">GamePlay::m_pauseMenuMain</a></div><div class="ttdeci">Menu2DPtr m_pauseMenuMain</div><div class="ttdoc">Smart pointer to pause and save menu. </div><div class="ttdef"><b>Definition:</b> GamePlay.h:261</div></div>
<div class="ttc" id="class_game_play_html_a55a05169e47f5e9a7114b702842f151d"><div class="ttname"><a href="class_game_play.html#a55a05169e47f5e9a7114b702842f151d">GamePlay::fadeBackgroundForOneTime</a></div><div class="ttdeci">void fadeBackgroundForOneTime()</div><div class="ttdoc">Faded the background for exactly one time, when the game starts. </div><div class="ttdef"><b>Definition:</b> GamePlay.cpp:829</div></div>
<div class="ttc" id="class_game_play_html_a90f8264657c06e37852a5aac537a57b9"><div class="ttname"><a href="class_game_play.html#a90f8264657c06e37852a5aac537a57b9">GamePlay::m_observerProxy</a></div><div class="ttdeci">ObserverDispatcherProxyPtr m_observerProxy</div><div class="ttdoc">Smart pointer for the observer proxy. </div><div class="ttdef"><b>Definition:</b> GamePlay.h:304</div></div>
<div class="ttc" id="class_game_play_html_af635ce486e5bc9b3bdf21241f6737000"><div class="ttname"><a href="class_game_play.html#af635ce486e5bc9b3bdf21241f6737000">GamePlay::exit</a></div><div class="ttdeci">void exit() override</div><div class="ttdoc">Exits the current state and cleans up all allocated resources. </div><div class="ttdef"><b>Definition:</b> GamePlay.cpp:898</div></div>
<div class="ttc" id="struct_game_play_1_1_message_box_html_aff27b1354ab7cce86518739f39dca891"><div class="ttname"><a href="struct_game_play_1_1_message_box.html#aff27b1354ab7cce86518739f39dca891">GamePlay::MessageBox::width</a></div><div class="ttdeci">unsigned int width</div><div class="ttdoc">width of the box </div><div class="ttdef"><b>Definition:</b> GamePlay.h:267</div></div>
<div class="ttc" id="class_game_play_html_a68f3666e621c5014adb31332d2dd04dd"><div class="ttname"><a href="class_game_play.html#a68f3666e621c5014adb31332d2dd04dd">GamePlay::resetCapturedPieces</a></div><div class="ttdeci">void resetCapturedPieces()</div><div class="ttdoc">Sets the number of captured pieces to zero for each color. </div><div class="ttdef"><b>Definition:</b> GamePlay.cpp:94</div></div>
<div class="ttc" id="class_game_play_html_ab9cb6b539cc813c1ea254ad1d56c4591"><div class="ttname"><a href="class_game_play.html#ab9cb6b539cc813c1ea254ad1d56c4591">GamePlay::onSaveSlot3</a></div><div class="ttdeci">void onSaveSlot3()</div><div class="ttdoc">This must be called when saving the current game to game slot 3. </div><div class="ttdef"><b>Definition:</b> GamePlay.cpp:306</div></div>
<div class="ttc" id="class_game_play_html_afe1496c140111c6a6680754fc0a2d277"><div class="ttname"><a href="class_game_play.html#afe1496c140111c6a6680754fc0a2d277">GamePlay::m_lastPlayer</a></div><div class="ttdeci">PlayerColor m_lastPlayer</div><div class="ttdoc">The last player who was on turn. </div><div class="ttdef"><b>Definition:</b> GamePlay.h:246</div></div>
<div class="ttc" id="struct_game_play_1_1_keyboard_counter_html"><div class="ttname"><a href="struct_game_play_1_1_keyboard_counter.html">GamePlay::KeyboardCounter</a></div><div class="ttdoc">To stop triggering keys too often, this counter helps to delay each key stroke. </div><div class="ttdef"><b>Definition:</b> GamePlay.h:191</div></div>
<div class="ttc" id="struct_game_play_1_1_message_box_html_a690017c5e260f71076c073b9e71ba792"><div class="ttname"><a href="struct_game_play_1_1_message_box.html#a690017c5e260f71076c073b9e71ba792">GamePlay::MessageBox::displayList</a></div><div class="ttdeci">GLuint displayList</div><div class="ttdoc">OpenGL display list which stores the OpenGL background part. </div><div class="ttdef"><b>Definition:</b> GamePlay.h:285</div></div>
<div class="ttc" id="class_game_play_html_afd53f5e1f41821e947ad68d6f008a379"><div class="ttname"><a href="class_game_play.html#afd53f5e1f41821e947ad68d6f008a379">GamePlay::initAnimationHelpers</a></div><div class="ttdeci">void initAnimationHelpers()</div><div class="ttdoc">Initializes all the animation helpers. </div><div class="ttdef"><b>Definition:</b> GamePlay.cpp:263</div></div>
<div class="ttc" id="class_game_play_html_a31b412528f8da62316bea55169626d3c"><div class="ttname"><a href="class_game_play.html#a31b412528f8da62316bea55169626d3c">GamePlay::drawInfoBox</a></div><div class="ttdeci">void drawInfoBox(string msg)</div><div class="ttdoc">Draws the info string on the right bottom side of the viewport to show some extra information...</div><div class="ttdef"><b>Definition:</b> GamePlay.cpp:683</div></div>
<div class="ttc" id="class_game_play_html_ae7d4ceb1d99b0d5cd8e81edf4623822f"><div class="ttname"><a href="class_game_play.html#ae7d4ceb1d99b0d5cd8e81edf4623822f">GamePlay::initMessageBox</a></div><div class="ttdeci">void initMessageBox()</div><div class="ttdoc">Initializes the message box to show text to the human player. </div><div class="ttdef"><b>Definition:</b> GamePlay.cpp:72</div></div>
<div class="ttc" id="class_game_play_html_a0d85827a32cecdbefd05d8e959dfbe0f"><div class="ttname"><a href="class_game_play.html#a0d85827a32cecdbefd05d8e959dfbe0f">GamePlay::m_lastTurn</a></div><div class="ttdeci">Turn m_lastTurn</div><div class="ttdoc">The last turn which was made. </div><div class="ttdef"><b>Definition:</b> GamePlay.h:249</div></div>
<div class="ttc" id="class_game_play_html_a7c7414aff1c119e7e1faeb8d5e30ada6"><div class="ttname"><a href="class_game_play.html#a7c7414aff1c119e7e1faeb8d5e30ada6">GamePlay::drawLastTurns</a></div><div class="ttdeci">void drawLastTurns()</div><div class="ttdoc">Draws the last fice turns on the left bottom side of the viewport. </div><div class="ttdef"><b>Definition:</b> GamePlay.cpp:656</div></div>
<div class="ttc" id="class_game_play_html_ae927606f6049f0860b365c65864e0cbd"><div class="ttname"><a href="class_game_play.html#ae927606f6049f0860b365c65864e0cbd">GamePlay::m_animationHelperCamera</a></div><div class="ttdeci">AnimationHelperPtr m_animationHelperCamera</div><div class="ttdoc">Animation helpers to handle (time dependent) animations. </div><div class="ttdef"><b>Definition:</b> GamePlay.h:255</div></div>
<div class="ttc" id="class_game_play_html_a21dced2f42338f59198c44a84e3f151a"><div class="ttname"><a href="class_game_play.html#a21dced2f42338f59198c44a84e3f151a">GamePlay::initPieceCounters</a></div><div class="ttdeci">void initPieceCounters(GameState &amp;initialGameState)</div><div class="ttdoc">Initializes the counters for the stricken models. </div><div class="ttdef"><b>Definition:</b> GamePlay.cpp:216</div></div>
<div class="ttc" id="struct_game_play_1_1_message_box_html_a94cdd99d0da04e1c4a7ec1ccc50d92cd"><div class="ttname"><a href="struct_game_play_1_1_message_box.html#a94cdd99d0da04e1c4a7ec1ccc50d92cd">GamePlay::MessageBox::text</a></div><div class="ttdeci">std::string text</div><div class="ttdoc">text to show on viewport </div><div class="ttdef"><b>Definition:</b> GamePlay.h:275</div></div>
<div class="ttc" id="struct_game_play_1_1_message_box_html_aacbedfddc00beee62ebc27f91c8accf5"><div class="ttname"><a href="struct_game_play_1_1_message_box.html#aacbedfddc00beee62ebc27f91c8accf5">GamePlay::MessageBox::showDuration</a></div><div class="ttdeci">unsigned int showDuration</div><div class="ttdoc">currently not used </div><div class="ttdef"><b>Definition:</b> GamePlay.h:273</div></div>
<div class="ttc" id="class_game_play_html_a4cb5373f35672dd1112e41fd48e46e57"><div class="ttname"><a href="class_game_play.html#a4cb5373f35672dd1112e41fd48e46e57">GamePlay::draw</a></div><div class="ttdeci">void draw()</div><div class="ttdoc">Draws all relevant and state related stuff on the screen. </div><div class="ttdef"><b>Definition:</b> GamePlay.cpp:436</div></div>
<div class="ttc" id="class_game_play_html_abe6e84acbf534cf6d3a5152132e143bb"><div class="ttname"><a href="class_game_play.html#abe6e84acbf534cf6d3a5152132e143bb">GamePlay::onMenuSaveBack</a></div><div class="ttdeci">void onMenuSaveBack()</div><div class="ttdoc">Changes the internal state to PAUSE. </div><div class="ttdef"><b>Definition:</b> GamePlay.cpp:310</div></div>
<div class="ttc" id="class_game_play_html_a18222d37c08887971467a535226c6b72"><div class="ttname"><a href="class_game_play.html#a18222d37c08887971467a535226c6b72">GamePlay::setState</a></div><div class="ttdeci">void setState(std::array&lt; Piece, 64 &gt; state, PlayerColor lastPlayer, Turn lastTurn)</div><div class="ttdoc">Method for setting the new chess state. </div><div class="ttdef"><b>Definition:</b> GamePlay.cpp:626</div></div>
<div class="ttc" id="class_game_play_html_a6fcf631d2f2c73225c4b225cfc80af98"><div class="ttname"><a href="class_game_play.html#a6fcf631d2f2c73225c4b225cfc80af98">GamePlay::m_observer</a></div><div class="ttdeci">GuiObserverPtr m_observer</div><div class="ttdoc">Smart pointer for the observer. </div><div class="ttdef"><b>Definition:</b> GamePlay.h:301</div></div>
<div class="ttc" id="class_game_play_html_ae5056701f898482fc4dc076f683f5920"><div class="ttname"><a href="class_game_play.html#ae5056701f898482fc4dc076f683f5920">GamePlay::getPieceName</a></div><div class="ttdeci">string getPieceName(int pieceNumber)</div><div class="ttdoc">The functions returns the name of the piece/model for the given number. </div><div class="ttdef"><b>Definition:</b> GamePlay.cpp:734</div></div>
<div class="ttc" id="class_game_play_html_a0f24d5ef62fec459a516bd4106a67ee4"><div class="ttname"><a href="class_game_play.html#a0f24d5ef62fec459a516bd4106a67ee4">GamePlay::switchToPlayerColor</a></div><div class="ttdeci">void switchToPlayerColor(PlayerColor color)</div><div class="ttdoc">When the other player is on turn, this method switched the camera position and shows a small text mes...</div><div class="ttdef"><b>Definition:</b> GamePlay.cpp:884</div></div>
<div class="ttc" id="class_game_play_html_aa05a2e43fc4d518712e38a3593efef57"><div class="ttname"><a href="class_game_play.html#aa05a2e43fc4d518712e38a3593efef57">GamePlay::m_fsm</a></div><div class="ttdeci">StateMachine &amp; m_fsm</div><div class="ttdoc">The state machine to access window functions. </div><div class="ttdef"><b>Definition:</b> GamePlay.h:163</div></div>
<div class="ttc" id="class_game_play_html_a667d7e1a2bd4484382871052a76ef7e0"><div class="ttname"><a href="class_game_play.html#a667d7e1a2bd4484382871052a76ef7e0">GamePlay::m_lockCamera</a></div><div class="ttdeci">bool m_lockCamera</div><div class="ttdoc">Flag to lock the camera rotation on each turn change. </div><div class="ttdef"><b>Definition:</b> GamePlay.h:175</div></div>
<div class="ttc" id="class_game_play_html_a177914ef7eda1e6686566490264f3ce7"><div class="ttname"><a href="class_game_play.html#a177914ef7eda1e6686566490264f3ce7">GamePlay::m_gameState</a></div><div class="ttdeci">GameState m_gameState</div><div class="ttdoc">Holds the whole game state. </div><div class="ttdef"><b>Definition:</b> GamePlay.h:200</div></div>
<div class="ttc" id="struct_game_play_1_1_captured_pieces_html"><div class="ttname"><a href="struct_game_play_1_1_captured_pieces.html">GamePlay::CapturedPieces</a></div><div class="ttdoc">Struct that contains all captured pieces for the black and white player as also the OpenGL display li...</div><div class="ttdef"><b>Definition:</b> GamePlay.h:204</div></div>
<div class="ttc" id="class_game_play_html_aa488735535fde3fa3ac41ee94112141e"><div class="ttname"><a href="class_game_play.html#aa488735535fde3fa3ac41ee94112141e">GamePlay::run</a></div><div class="ttdeci">AbstractState * run() override</div><div class="ttdoc">Runs the current state and does all the work. </div><div class="ttdef"><b>Definition:</b> GamePlay.cpp:341</div></div>
<div class="ttc" id="class_player_dispatcher_proxy_html"><div class="ttname"><a href="class_player_dispatcher_proxy.html">PlayerDispatcherProxy</a></div><div class="ttdoc">Proxy for transporting AbstractGamePlayer events between threads. </div><div class="ttdef"><b>Definition:</b> PlayerDispatcherProxy.h:50</div></div>
<div class="ttc" id="class_game_play_html_a300e9e0ee4ca6f55ffd54791b34d4d0b"><div class="ttname"><a href="class_game_play.html#a300e9e0ee4ca6f55ffd54791b34d4d0b">GamePlay::disableLighting</a></div><div class="ttdeci">void disableLighting()</div><div class="ttdoc">Disables lighting. </div><div class="ttdef"><b>Definition:</b> GamePlay.cpp:430</div></div>
<div class="ttc" id="class_game_play_html_aca425c767b227b7c8a30c08131c8535c"><div class="ttname"><a href="class_game_play.html#aca425c767b227b7c8a30c08131c8535c">GamePlay::draw2D</a></div><div class="ttdeci">void draw2D()</div><div class="ttdoc">Does all the 2D drawing action like menu, widgets and text rendering. </div><div class="ttdef"><b>Definition:</b> GamePlay.cpp:461</div></div>
<div class="ttc" id="class_game_play_html_aa352e55db65724b3a72ecb1c5014aaf0"><div class="ttname"><a href="class_game_play.html#aa352e55db65724b3a72ecb1c5014aaf0">GamePlay::m_firstTurn</a></div><div class="ttdeci">bool m_firstTurn</div><div class="ttdoc">Flag, if the first turn was made. For camera rotation. </div><div class="ttdef"><b>Definition:</b> GamePlay.h:252</div></div>
<div class="ttc" id="class_game_play_html_a3d2fc85d50bceae7970cca44f047ba21"><div class="ttname"><a href="class_game_play.html#a3d2fc85d50bceae7970cca44f047ba21">GamePlay::m_playerProxy</a></div><div class="ttdeci">PlayerDispatcherProxyPtr m_playerProxy</div><div class="ttdoc">Smart pointer for the player proxy. </div><div class="ttdef"><b>Definition:</b> GamePlay.h:307</div></div>
<div class="ttc" id="class_game_play_html_a8295f5fee002bad263bdecd70e1ba2ed"><div class="ttname"><a href="class_game_play.html#a8295f5fee002bad263bdecd70e1ba2ed">GamePlay::m_chessBoardState</a></div><div class="ttdeci">std::array&lt; Piece, 64 &gt; m_chessBoardState</div><div class="ttdoc">Holds the 64 field chess board state with models, types, colors, ... </div><div class="ttdef"><b>Definition:</b> GamePlay.h:197</div></div>
<div class="ttc" id="struct_game_play_1_1_message_box_html_adc292bdca3ba100b4dba7c7e166758e5"><div class="ttname"><a href="struct_game_play_1_1_message_box.html#adc292bdca3ba100b4dba7c7e166758e5">GamePlay::MessageBox::height</a></div><div class="ttdeci">unsigned int height</div><div class="ttdoc">height of the box </div><div class="ttdef"><b>Definition:</b> GamePlay.h:269</div></div>
<div class="ttc" id="class_game_play_html_a98fcc876a9da4c8896670ef67600cf4e"><div class="ttname"><a href="class_game_play.html#a98fcc876a9da4c8896670ef67600cf4e">GamePlay::m_arrowNavHandler</a></div><div class="ttdeci">ArrowNavigationHandlerPtr m_arrowNavHandler</div><div class="ttdoc">Smart pointer to the keyboard navigation handler to manage human field navigation. </div><div class="ttdef"><b>Definition:</b> GamePlay.h:178</div></div>
<div class="ttc" id="class_game_play_html_a68c51e693ae04b3b4c41fe5beca7a336"><div class="ttname"><a href="class_game_play.html#a68c51e693ae04b3b4c41fe5beca7a336">GamePlay::onSaveSlot1</a></div><div class="ttdeci">void onSaveSlot1()</div><div class="ttdoc">This must be called when saving the current game to game slot 1. </div><div class="ttdef"><b>Definition:</b> GamePlay.cpp:298</div></div>
<div class="ttc" id="class_game_play_html_a21066f597c360f52bba7f5eef852100a"><div class="ttname"><a href="class_game_play.html#a21066f597c360f52bba7f5eef852100a">GamePlay::onSaveGame</a></div><div class="ttdeci">void onSaveGame()</div><div class="ttdoc">If the player wants to save the game, the internal game state changes to SAVE_GAME. </div><div class="ttdef"><b>Definition:</b> GamePlay.cpp:279</div></div>
<div class="ttc" id="class_game_play_html"><div class="ttname"><a href="class_game_play.html">GamePlay</a></div><div class="ttdoc">Class which holds the state GamePlay. </div><div class="ttdef"><b>Definition:</b> GamePlay.h:63</div></div>
<div class="ttc" id="class_game_play_html_a7cfdf90a24b76b71d01d292337e080ee"><div class="ttname"><a href="class_game_play.html#a7cfdf90a24b76b71d01d292337e080ee">GamePlay::startShowText</a></div><div class="ttdeci">void startShowText(std::string text)</div><div class="ttdoc">Call this function to draw text on the right bottom side of the viewport. </div><div class="ttdef"><b>Definition:</b> GamePlay.cpp:879</div></div>
<div class="ttc" id="struct_game_play_1_1_message_box_html"><div class="ttname"><a href="struct_game_play_1_1_message_box.html">GamePlay::MessageBox</a></div><div class="ttdoc">Struct that represents the message box on the top. </div><div class="ttdef"><b>Definition:</b> GamePlay.h:265</div></div>
<div class="ttc" id="class_game_play_html_a477c98347361e879824a47a100302271"><div class="ttname"><a href="class_game_play.html#a477c98347361e879824a47a100302271">GamePlay::m_initialFen</a></div><div class="ttdeci">std::string m_initialFen</div><div class="ttdoc">The initial FEN notation string to load the game state from. </div><div class="ttdef"><b>Definition:</b> GamePlay.h:310</div></div>
<div class="ttc" id="class_game_play_html_a265e1c47781f3ab890a648c9811738d7"><div class="ttname"><a href="class_game_play.html#a265e1c47781f3ab890a648c9811738d7">GamePlay::enter</a></div><div class="ttdeci">void enter() override</div><div class="ttdoc">Enters the state for the first time. </div><div class="ttdef"><b>Definition:</b> GamePlay.cpp:108</div></div>
<div class="ttc" id="class_game_play_html_a9bbbd1c2193ee3046f1b0f25035fa616"><div class="ttname"><a href="class_game_play.html#a9bbbd1c2193ee3046f1b0f25035fa616">GamePlay::GameMode</a></div><div class="ttdeci">GameMode</div><div class="ttdoc">The possible game modes to chose. </div><div class="ttdef"><b>Definition:</b> GamePlay.h:66</div></div>
<div class="ttc" id="class_game_play_html_a8e7a86f69d354aec784c8b79a7bcc5c2"><div class="ttname"><a href="class_game_play.html#a8e7a86f69d354aec784c8b79a7bcc5c2">GamePlay::initGameLogic</a></div><div class="ttdeci">void initGameLogic()</div><div class="ttdoc">Initializes the game logic depending on the human player color and given FEN game state...</div><div class="ttdef"><b>Definition:</b> GamePlay.cpp:193</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sun Mar 9 2014 23:12:55 for 3dchess by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>
</body>
</html>
